//
//  main.m
//  08-类的拓展
//
//  Created by dllo on 16/7/13.
//  Copyright © 2016年 YMJ. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSObject+SayHello.h"
#import "NSString+NewStr.h"
#import "Student.h"
#import "OverseaPurchaser.h"
int main(int argc, const char * argv[]) {
    // 类的拓展的方式
    // 1.category
    //  创建
    //  Objective -C file --- category
    // 类名+category名
    NSObject *objc = [[NSObject alloc] init];
    [objc sayHello];
    NSString *str = @"ghdjlaae";
    // 自己写的
    NSString *newStr = [str getHeadCharacterWithString:str];
    NSLog(@"%@",newStr);
    // 老师写的
    NSString *firstStr = [str getFirstChar];
    NSLog(@"%@",firstStr);
    // 1.获取字符串说明,需要返回值
    // 2.一个字符串调用此方法就变成另一个字符串不需要别的参数,自身变化就可以,所以不需要参数
    
    
    
    
    
    // 2.Extension
    // 延展,一般定义在.m中,其中声明一些私有的属性,方法
    // 保持.h的整洁
    
    
    
    
    // 3.代理delegate设计模式
    // 举例:海外代购
    Student *stu = [[Student alloc] init];
    OverseaPurchaser *buyer = [[OverseaPurchaser alloc] init];
    stu.delegate = buyer;
    // 触发事件
    [stu seeWeChat];
    // 1.协议内容(购物清单)
    // 2.委托方设定委托(甲方签字)
    // 3.触发协议生效(甲方干啥事触发此协议)
    // 4.代理人签订协议(乙方签字)
    // 5.代理人实现协议(乙方在甲方触发协议后就干这件事)
    
    return 0;
}
